package cn.iocoder.yudao.module.trade.service.order2;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderCreateReqVO;
import cn.iocoder.yudao.module.trade.controller.app.order2.vo.PackageOrderCreateReqVO;
import cn.iocoder.yudao.module.trade.controller.app.order2.vo.PackageOrderPageReqVO;
import cn.iocoder.yudao.module.trade.dal.dataobject.order2.PackageOrderDO;
import jakarta.validation.*;

/**
 * 套餐订单 Service 接口
 *
 * @author 芋道源码
 */
public interface  PackageOrderService {

    /**
     * 创建套餐订单
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    PackageOrderDO createOrder(Long userId, @Valid PackageOrderCreateReqVO createReqVO);


    /**
     * 更新套餐订单
     *
     * @param updateReqVO 更新信息
     */
    void updateOrder(@Valid PackageOrderCreateReqVO updateReqVO);

    /**
     * 删除套餐订单
     *
     * @param id 编号
     */
    void deleteOrder(Long id);

    /**
     * 获得套餐订单
     *
     * @param id 编号
     * @return 套餐订单
     */
    PackageOrderDO getOrder(Long id);

    /**
     * 获得套餐订单分页
     *
     * @param pageReqVO 分页查询
     * @return 套餐订单分页
     */
    PageResult<PackageOrderDO> getOrderPage(PackageOrderPageReqVO pageReqVO);

}